package com.newsoft.frame.codegen.parameter;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.cw.jeeyt.common.enums.EnumParamType;

import lombok.Data;

/**
 * Define a parameters bundle corresponding to an entity.
 *
 * @author chenw
 */
@Data
public class ParamBundle implements Serializable {

    private static final long serialVersionUID = 247750049818926900L;
    /** 包名 */
    private String packageName;
    /** 表名 */
    private String tableName;
    /** 表中文名 */
    private String tableCnName;
    /** 工程名 */
    private String projectCode;
    /** 工程类型 java go */
    private String projectType;
    /** 工程模块编码 */
    private String moduleId;
    /** 工程模块编码大写 */
    private String moduleIdUp;
    /** 工程中文名 */
    private String moduleIdCn;
    /** 类名 */
    private String className;
    /** 模块名 */
    private String moduleName;
    /** 作者 */
    private String author;
    /** 页面路径 */
    private String pagePath;
    /** xml路径 */
    private String xmlPath;
    /** 代码生成方式 */
    private String generateType;
    /** //生成日期 */
    private String createDate;
    /** //序列号 */
    private String serialId;
    /** 主键集合 */
    private List<PkField> pkList = new ArrayList<>();
    private EnumParamType paramType;
    /** 数据字典集合 */
    private List<EnumItemField> enumItemList = new ArrayList<>();
    /** 主键 */
    private String pkId;
    private String pkIdClass;
    /** 主键数据类型 */
    private String pkIdDataType;
    /** 主键首字母大写 */
    private String pkIdUp;
    /** The field list. */
    /** 表字段信息 */
    private List<Field> fieldList = new ArrayList<>();
    /** 查询字段信息 */
    private List<Field> queryList = new ArrayList<>();
    /** 排序字段信息 */
    private List<Field> orderList = new ArrayList<>();
    /** 列表字段信息 */
    private List<Field> listList = new ArrayList<>();
    /** 表单字段信息 */
    private List<Field> formList = new ArrayList<>();

    /**
     * 配置文件classNamelist
     */
    private List<ClassField> classFieldList = new ArrayList<>();

    @Override
    public String toString() {
        return "ParamBundle [packageName=" + packageName + ", tableName=" + tableName + ", className=" + className
            + ", moduleName=" + moduleName + ", fieldList=" + fieldList + "]";
    }

}
